home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_013 / sketchpad.bas < prev    next >
BASIC Source File  |  1992-05-06  |  4KB  |  120 lines

  1. 1     REM SKETCHPAD PROGRAM FOR THE AMIGA
  2. 2     REM
  3. 3     REM WRITTEN BY RICK SCHAEFFER [70120,174]
  4. 4     REM
  5. 5     REM TO DRAW, CLICK ON A COLOR AND GO FOR IT!
  6. 6     REM TO DRAW A LINE, FIRST SELECT A COLOR AND THEN CLICK ON "L"
  7. 7     REM    AND THEN MOVE TO THE STARTING LOCATION FOR THE LINE...
  8. 8     REM    THEN HOLD THE BUTTON DOWN WHILE DRAWING THE LINE.
  9. 9     REM
  10. 10    REM TO DRAW A BOX, DO LIKE A LINE EXCEPT CLICK ON "B".
  11. 11    REM TO DRAW AN ELIPSE, DO LIKE A BOX EXCEPT CLICK ON "E".
  12. 12    REM
  13. 13    REM TO FILL A SHAPE...FIRST CLICK ON THE DESIRED COLOR...
  14. 14    REM    THEN CLICK ON "F"...
  15. 15    REM    THEN MOVE THE POINTER INSIDE THE SHAPE TO FILL...
  16. 16    REM    THEN CLICK THE MOUSE ONCE AND THE SHAPE WILL BE FILLED.
  17. 17    REM
  18. 18    REM TO CLEAR THE SCREEN, CLICK ON "C".
  19. 19    REM TO QUIT, CLICK ON "Q".
  20. 20    REM
  21. 200   OUTLINE 0
  22. 210   ASK WINDOW S1%,S2%
  23. 220   IF S1%>320 THEN SCREEN 0,4,0
  24. 230   ASK RGB 0,R0%,G0%,B0%
  25. 240   ASK RGB 1,R1%,G1%,B1%
  26. 250   WINDOW #1,0,0,320,240,"SKETCHPAD"
  27. 260   X1%=-1:Y1%=-1
  28. 270   GOSUB 470
  29. 280   ASK MOUSE X%,Y%,B%
  30. 290   X1%=X%:Y1%=Y%
  31. 300   IF B%=0 THEN 280
  32. 310   IF Y%<=10 AND B%=4 AND X%<160 THEN 320 ELSE 360
  33. 320   C=INT(X%*.1)
  34. 330   IF C<0 THEN C=0
  35. 340   PENA C
  36. 350   GOTO 280
  37. 360   IF Y%>10 THEN 430
  38. 370   IF X%>=192 AND X%<=199 AND B%=4 THEN SCNCLR:GOTO 270
  39. 380   IF X%>=272 AND X%<=279 AND B%=4 THEN 660
  40. 390   IF X%>=208 AND X%<=215 AND B%=4 THEN GOSUB 710:GOTO 280
  41. 400   IF X%>=224 AND X%<=231 AND B%=4 THEN GOSUB 850:GOTO 280
  42. 410   IF X%>=240 AND X%<=247 AND B%=4 THEN GOSUB 970:GOTO 280
  43. 420   IF X%>=256 AND X%<=263 AND B%=4 THEN GOSUB 1030:GOTO 280
  44. 430   DRAW(X1%,Y1% TO X%,Y%):X1%=X%:Y1%=Y%
  45. 440   ASK MOUSE X%,Y%,B%
  46. 450   IF B%=4 THEN 430
  47. 460   GOTO 280
  48. 470   CMD 1
  49. 480   OUTLINE 0
  50. 490   RGB 0,0,0,0
  51. 500   RGB 1,6,9,15
  52. 510   PRINT AT (25,0);INVERSE(1);"C";
  53. 520   PRINT AT (27,0);INVERSE(1);"L";
  54. 530   PRINT AT (29,0);INVERSE(1);"B";
  55. 540   PRINT AT (31,0);INVERSE(1);"F";
  56. 550   PRINT AT(33,0);INVERSE(1);"E";
  57. 560   FOR X=0 TO 15
  58. 570   PENA X
  59. 580   BOX(X*10,0;X*10+9,10),1
  60. 590   NEXT X
  61. 600   PRINT AT (35,0);INVERSE(1);"Q";INVERSE(0);" ";
  62. 610   PENA 0
  63. 620   BOX(288,0;288+9,10),1
  64. 630   PENA 0
  65. 640   OUTLINE 1
  66. 650   RETURN
  67. 660   CLOSE #1
  68. 670   RGB 0,R0%,G0%,B0%
  69. 680   RGB 1,R1%,G1%,B1%
  70. 690   IF S1%>320 THEN SCREEN 1,3,0
  71. 700   END
  72. 710   REM DRAW A LINE
  73. 720   ASK MOUSE X%,Y%,B%:IF B%=4 THEN 720
  74. 730   ASK MOUSE X%,Y%,B%:IF B%=0 THEN 730
  75. 740   X2%=X%:Y2%=Y%
  76. 750   X1%=X%:Y1%=Y%
  77. 760   DRAWMODE 2
  78. 770   ASK MOUSE X%,Y%,B%
  79. 780   IF B%=0 THEN DRAWMODE 0:DRAW(X1%,Y1% TO X2%,Y2%):RETURN
  80. 790   PENA 0
  81. 800   DRAW(X1%,Y1% TO X2%,Y2%)
  82. 810   PENA C
  83. 820   DRAW(X1%,Y1% TO X%,Y%)
  84. 830   X2%=X%:Y2%=Y%
  85. 840   GOTO 770
  86. 850   REM DRAW A BOX
  87. 860   ASK MOUSE X%,Y%,B%:IF B%=4 THEN 860
  88. 870   ASK MOUSE X%,Y%,B%:IF B%=0 THEN 870
  89. 880   X2%=X%:Y2%=Y%
  90. 890   X1%=X%:Y1%=Y%
  91. 900   DRAWMODE 2
  92. 910   ASK MOUSE X%,Y%,B%
  93. 920   IF B%=0 THEN DRAWMODE 0:PENO C:BOX(X1%,Y1% ; X2%,Y2%):PENO 0:RETURN
  94. 930   BOX(X1%,Y1% ; X2%,Y2%)
  95. 940   BOX(X1%,Y1% ; X%,Y%)
  96. 950   X2%=X%:Y2%=Y%
  97. 960   GOTO 910
  98. 970   REM FILL
  99. 980   ASK MOUSE X%,Y%,B%:IF B%=4 THEN 980
  100. 990   ASK MOUSE X%,Y%,B%:IF B%=0 THEN 990
  101. 1000  ASK MOUSE X%,Y%,B%:IF B%=0 THEN 1000
  102. 1010  PAINT (X%,Y%),1
  103. 1020  RETURN
  104. 1030  REM DRAW A CIRCLE
  105. 1040  ASK MOUSE X%,Y%,B%:IF B%=4 THEN 1040
  106. 1050  ASK MOUSE X%,Y%,B%:IF B%=0 THEN 1050
  107. 1060  CX%=X%:CY%=Y%
  108. 1070  X1%=X%:Y1%=Y%
  109. 1080  CA=0:CR=0
  110. 1090  DRAWMODE 2
  111. 1100  ASK MOUSE X%,Y%,B%
  112. 1110  IF B%=0 THEN DRAWMODE 0:PENO C:CIRCLE(CX%,CY%),CR,CA:PENO 0:RETURN
  113. 1120  CIRCLE(CX%,CY%),CR,CA
  114. 1130  REM DRAW THE NEW CIRCLE
  115. 1140  CX%=(X1%+X%)/2:CY%=(Y1%+Y%)/2
  116. 1150  CR=ABS(X1%-X%)/2
  117. 1160  IF ABS(X1%-X%)=0 THEN CA=1 ELSE CA=ABS(Y1%-Y%)/ABS(X1%-X%)
  118. 1170  CIRCLE(CX%,CY%),CR,CA
  119. 1180  GOTO 1100
  120.